<html>
<head><meta charset="utf-8"><title>design meeting 2020.01.13 · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html">design meeting 2020.01.13</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="185524101"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524101" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524101">(Jan 13 2020 at 18:54)</a>:</h4>
<p>Hi <span class="user-group-mention" data-user-group-id="692">@WG-traits</span></p>



<a name="185524110"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524110" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524110">(Jan 13 2020 at 18:54)</a>:</h4>
<p>Bit early</p>



<a name="185524120"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524120" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524120">(Jan 13 2020 at 18:54)</a>:</h4>
<p>But, let's figure out what we want to talk about today?</p>



<a name="185524198"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524198" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524198">(Jan 13 2020 at 18:55)</a>:</h4>
<p>I was just pondering that</p>



<a name="185524244"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524244" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524244">(Jan 13 2020 at 18:55)</a>:</h4>
<p>So, one thing I was thinking about</p>



<a name="185524259"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524259" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524259">(Jan 13 2020 at 18:55)</a>:</h4>
<p>Was <code>impl Trait</code></p>



<a name="185524273"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524273" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524273">(Jan 13 2020 at 18:55)</a>:</h4>
<p>So, we removed <code>Opaque</code></p>



<a name="185524290"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524290" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524290">(Jan 13 2020 at 18:55)</a>:</h4>
<p>In favor of <code>Alias</code></p>



<a name="185524340"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524340" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524340">(Jan 13 2020 at 18:56)</a>:</h4>
<p>But, a bit confused with this</p>



<a name="185524433"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524433" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524433">(Jan 13 2020 at 18:57)</a>:</h4>
<p>We could also discuss how we might want to handle yielding in the middle of solving</p>



<a name="185524460"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524460" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524460">(Jan 13 2020 at 18:57)</a>:</h4>
<p>I've been thinking about the strategy for migrating and developing chalk. I've been thining in particular that it makes sense to be doing two things:</p>
<ul>
<li>modifying rustc to bring it closer to chalk</li>
<li>extending chalk's capabilities and integrating it with rustc</li>
</ul>
<p>I was curious to discuss the first bullet point a bit in particular.</p>
<p>The second I think can be useful in part to help in validating chalk's role as a definitive semantics for Rust's trait system, as much as anything else.</p>



<a name="185524464"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524464" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524464">(Jan 13 2020 at 18:57)</a>:</h4>
<p>(does the design of my PR make sense, or do we want to do something else, basically)</p>



<a name="185524472"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524472" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524472">(Jan 13 2020 at 18:57)</a>:</h4>
<blockquote>
<p>But, a bit confused with this</p>
</blockquote>
<p>we could discuss it, sure</p>



<a name="185524490"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524490" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524490">(Jan 13 2020 at 18:57)</a>:</h4>
<p>I've also been starting to write up some chalk goals: <a href="https://hackmd.io/VeMmXIYBRu2KdYbJDIpcFA?both" target="_blank" title="https://hackmd.io/VeMmXIYBRu2KdYbJDIpcFA?both">https://hackmd.io/VeMmXIYBRu2KdYbJDIpcFA?both</a></p>



<a name="185524497"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524497" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524497">(Jan 13 2020 at 18:57)</a>:</h4>
<p>kind of rough write now</p>



<a name="185524500"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524500" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524500">(Jan 13 2020 at 18:57)</a>:</h4>
<blockquote>
<p>We could also discuss how we might want to handle yielding in the middle of solving</p>
</blockquote>
<p>ok, I didn't get a chance to look too closely at your PR yet but we could talk it over</p>



<a name="185524514"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524514" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524514">(Jan 13 2020 at 18:57)</a>:</h4>
<p>but mostly breaking them down into categories</p>



<a name="185524605"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524605" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524605">(Jan 13 2020 at 18:58)</a>:</h4>
<blockquote>
<ul>
<li>modifying rustc to bring it closer to chalk</li>
</ul>
</blockquote>
<p>This is interesting to me, but I wouldn't be able to say much</p>



<a name="185524694"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524694" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524694">(Jan 13 2020 at 18:59)</a>:</h4>
<p>I spent some time filling out <a href="https://github.com/rust-lang/wg-traits/projects" target="_blank" title="https://github.com/rust-lang/wg-traits/projects">https://github.com/rust-lang/wg-traits/projects</a> earlier --</p>



<a name="185524741"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524741" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524741">(Jan 13 2020 at 18:59)</a>:</h4>
<p>(nothing since last week)</p>



<a name="185524782"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524782" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524782">(Jan 13 2020 at 19:00)</a>:</h4>
<p>Do we want to use that "chalk development" project there? Or make one in <code>rust-lang/chalk</code></p>



<a name="185524807"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524807" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524807">(Jan 13 2020 at 19:00)</a>:</h4>
<p>but one thing I was thinking of doing today is trying to fill out a few more such goals and brain dump in steps along the way</p>



<a name="185524865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524865">(Jan 13 2020 at 19:00)</a>:</h4>
<blockquote>
<p>Do we want to use that "chalk development" project there? Or make one in <code>rust-lang/chalk</code></p>
</blockquote>
<p>a good question</p>



<a name="185524898"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524898" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524898">(Jan 13 2020 at 19:00)</a>:</h4>
<p>I guess it depends how much "interaction" we expect perhaps</p>



<a name="185524966"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524966" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524966">(Jan 13 2020 at 19:01)</a>:</h4>
<p>interaction with rustc you mean?</p>



<a name="185524981"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524981" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524981">(Jan 13 2020 at 19:01)</a>:</h4>
<p>one of the questions this group has wrestled with a lot is figuring out its scope</p>



<a name="185524995"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185524995" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185524995">(Jan 13 2020 at 19:01)</a>:</h4>
<p>I personally feel like, unless there are cross-project concerns, it would be best in <code>rust-lang/chalk</code></p>



<a name="185525036"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525036" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525036">(Jan 13 2020 at 19:01)</a>:</h4>
<p>(well I meant like "is the focus just on chalk" or does it encompass rustc, and how much would we expect people to go back and forth between them)</p>



<a name="185525167"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525167" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525167">(Jan 13 2020 at 19:02)</a>:</h4>
<p>I guess I don't care too much which place we put things</p>



<a name="185525171"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525171" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525171">(Jan 13 2020 at 19:02)</a>:</h4>
<p>(I wonder how easy it is to move)</p>



<a name="185525209"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525209" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525209">(Jan 13 2020 at 19:02)</a>:</h4>
<p>hmm, can you even move projects? not sure</p>



<a name="185525230"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525230" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525230">(Jan 13 2020 at 19:03)</a>:</h4>
<p>I think you cannot</p>



<a name="185525239"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525239" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525239">(Jan 13 2020 at 19:03)</a>:</h4>
<p>at least I don't see an obvious way</p>



<a name="185525252"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525252" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525252">(Jan 13 2020 at 19:03)</a>:</h4>
<blockquote>
<p>I personally feel like, unless there are cross-project concerns, it would be best in <code>rust-lang/chalk</code></p>
</blockquote>
<p>I agree this is where I would naively expect things to be</p>



<a name="185525254"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525254" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525254">(Jan 13 2020 at 19:03)</a>:</h4>
<p>anyways, it's 2:03, maybe we should start with a sync-up?</p>



<a name="185525258"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525258" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525258">(Jan 13 2020 at 19:03)</a>:</h4>
<p>yes</p>



<a name="185525315"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525315" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525315">(Jan 13 2020 at 19:04)</a>:</h4>
<p>well, for me, last week somehow got very full, and I spent most of my "trait related" time pondering <a href="https://github.com/rust-lang/rust/issues/57893" target="_blank" title="https://github.com/rust-lang/rust/issues/57893">#57893</a>, a soundness bug</p>



<a name="185525368"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525368" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525368">(Jan 13 2020 at 19:04)</a>:</h4>
<p>I think the work on that plausibly falls under this group, if we take the more expansive definition :)</p>



<a name="185525395"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525395" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525395">(Jan 13 2020 at 19:04)</a>:</h4>
<p>I haven't looked at that in a while</p>



<a name="185525413"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525413" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525413">(Jan 13 2020 at 19:04)</a>:</h4>
<p>but I remember it</p>



<a name="185525454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525454">(Jan 13 2020 at 19:05)</a>:</h4>
<p>As for me, I made a PR to refactor the test infra a bit</p>



<a name="185525461"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525461" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525461">(Jan 13 2020 at 19:05)</a>:</h4>
<p>I did some reviewing or PRs and I am contemplating in particular <a href="https://github.com/rust-lang/rust/pull/67717" target="_blank" title="https://github.com/rust-lang/rust/pull/67717">https://github.com/rust-lang/rust/pull/67717</a> and optimization of canonicalization, which I need to follow up with <span class="user-mention" data-user-id="224180">@Ben Lewis</span> about (probably)</p>



<a name="185525480"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525480" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525480">(Jan 13 2020 at 19:05)</a>:</h4>
<p>(<a href="https://github.com/rust-lang/chalk/pull/317" target="_blank" title="https://github.com/rust-lang/chalk/pull/317">https://github.com/rust-lang/chalk/pull/317</a>)</p>



<a name="185525512"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525512" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525512">(Jan 13 2020 at 19:05)</a>:</h4>
<p>Also, been looking at some of the rust-analyzer reported issues</p>



<a name="185525575"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525575" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525575">(Jan 13 2020 at 19:06)</a>:</h4>
<p>I have different different branches for <a href="https://github.com/rust-lang/chalk/issues/301" target="_blank" title="https://github.com/rust-lang/chalk/issues/301">rust-lang/chalk#301</a></p>



<a name="185525598"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525598" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525598">(Jan 13 2020 at 19:06)</a>:</h4>
<p>And I started with the renaming to Alias, though in some places it wasn't really clear whether other kinds of aliases weren't implemented yet or whether they will be handled like associated types</p>



<a name="185525633"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525633" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525633">(Jan 13 2020 at 19:06)</a>:</h4>
<p><span class="user-mention" data-user-id="125131">@detrumi</span> glad you're here. definitely I think we should discuss this</p>



<a name="185525660"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525660" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525660">(Jan 13 2020 at 19:07)</a>:</h4>
<p>yeah, I was going to say the same thing</p>



<a name="185525664"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525664" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525664">(Jan 13 2020 at 19:07)</a>:</h4>
<p>Let's start with that?</p>



<a name="185525670"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525670" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525670">(Jan 13 2020 at 19:07)</a>:</h4>
<p>Sounds good</p>



<a name="185525677"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525677" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525677">(Jan 13 2020 at 19:07)</a>:</h4>
<p>Sure</p>



<a name="185525678"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525678" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525678">(Jan 13 2020 at 19:07)</a>:</h4>
<p>If we have time later, we can get into the rust-analyzer issues</p>



<a name="185525692"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525692" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525692">(Jan 13 2020 at 19:08)</a>:</h4>
<p>But anyways, I was looking into how to maybe reimplement <code>impl Trait</code></p>



<a name="185525750"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525750" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525750">(Jan 13 2020 at 19:08)</a>:</h4>
<p>So, in terms of aliases, rust has 3 notion of aliases. Each is handled somewhat differently in rustc but have a lot of similarities</p>



<a name="185525770"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525770" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525770">(Jan 13 2020 at 19:08)</a>:</h4>
<p>And I think maybe I'm not understanding what we expect <code>Alias</code> to be correctly</p>



<a name="185525794"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525794" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525794">(Jan 13 2020 at 19:08)</a>:</h4>
<p>Right, like commented here: <a href="https://github.com/rust-lang/chalk/pull/320/files#diff-9cded8099833735b25a53f395aa7f9f3R262" target="_blank" title="https://github.com/rust-lang/chalk/pull/320/files#diff-9cded8099833735b25a53f395aa7f9f3R262">https://github.com/rust-lang/chalk/pull/320/files#diff-9cded8099833735b25a53f395aa7f9f3R262</a></p>



<a name="185525805"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525805" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525805">(Jan 13 2020 at 19:09)</a>:</h4>
<p>yes</p>



<a name="185525824"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525824" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525824">(Jan 13 2020 at 19:09)</a>:</h4>
<p>though, <code>impl Trait</code> doesn't really seem to fit the others</p>



<a name="185525882"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525882" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525882">(Jan 13 2020 at 19:09)</a>:</h4>
<p>well so</p>



<a name="185525928"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525928" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525928">(Jan 13 2020 at 19:10)</a>:</h4>
<p>Namely, the associated type and <code>type XXX = ...</code> essentially points to another type</p>



<a name="185525934"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525934" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525934">(Jan 13 2020 at 19:10)</a>:</h4>
<p>it really does :)</p>



<a name="185525939"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525939" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525939">(Jan 13 2020 at 19:10)</a>:</h4>
<p>Isn't that <code>&lt;T as Trait&gt;::...</code>? (just a guess)</p>



<a name="185525943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525943">(Jan 13 2020 at 19:10)</a>:</h4>
<p>(a type function, you said another time)</p>



<a name="185525945"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525945" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525945">(Jan 13 2020 at 19:10)</a>:</h4>
<p>or at least I think it does</p>



<a name="185525961"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525961" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525961">(Jan 13 2020 at 19:10)</a>:</h4>
<p>so, here is why</p>



<a name="185525966"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185525966" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185525966">(Jan 13 2020 at 19:10)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> maybe want to elaborate and I'll wait a bit</p>



<a name="185526001"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185526001" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185526001">(Jan 13 2020 at 19:10)</a>:</h4>
<p>to start, I'm talking here about the "opaque" view of an <code>impl Trait</code></p>



<a name="185526010"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185526010" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185526010">(Jan 13 2020 at 19:10)</a>:</h4>
<p>that is, I'm not talking about the logic to figure out what the hidden type is</p>



<a name="185526035"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185526035" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185526035">(Jan 13 2020 at 19:11)</a>:</h4>
<p>but more about what happens when you use a <code>fn foo() -&gt; impl trait</code> (or whatever) "from the outside"</p>



<a name="185526063"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185526063" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185526063">(Jan 13 2020 at 19:11)</a>:</h4>
<p>in that case, we are really always dealing with a placeholder type</p>



<a name="185526098"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185526098" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185526098">(Jan 13 2020 at 19:11)</a>:</h4>
<p>where the only things we know are (a) the declared trait bounds and (b) we also have to think about auto-trait leakage :)</p>



<a name="185526155"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185526155" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185526155">(Jan 13 2020 at 19:12)</a>:</h4>
<p>let's assume for a moment we know the hidden type</p>



<a name="185526158"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185526158" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185526158">(Jan 13 2020 at 19:12)</a>:</h4>
<p>sorry, let's assume we are rustc, and we know the hidden type</p>



<a name="185526205"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185526205" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185526205">(Jan 13 2020 at 19:12)</a>:</h4>
<p>we want to generate rules for chalk to use for proving bounds and things</p>



<a name="185526248"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185526248" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185526248">(Jan 13 2020 at 19:13)</a>:</h4>
<p>so given say a <code>type Foo = impl A + B+ C; // hidden type T0</code></p>



<a name="185526286"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185526286" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185526286">(Jan 13 2020 at 19:13)</a>:</h4>
<p>and given some kind of chalk type representing an "alias placeholder", let's call it <code>!Foo</code></p>



<a name="185526290"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185526290" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185526290">(Jan 13 2020 at 19:13)</a>:</h4>
<p>then we might make rules like</p>



<a name="185526349"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185526349" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185526349">(Jan 13 2020 at 19:14)</a>:</h4>
<div class="codehilite"><pre><span></span>Implemented(!Foo: A)
Implemented(!Foo: B)
Implemented(!Foo: C)
Implemented(!Foo: Send) :- Implemented(T0 : Send)
</pre></div>



<a name="185526393"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185526393" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185526393">(Jan 13 2020 at 19:14)</a>:</h4>
<p>the more general case would be something like: </p>
<p><code>Implemented(!Foo: Trait)</code> where <code>!Foo</code> is some "impl trait alias placeholder"</p>
<ul>
<li>if <code>Trait</code> is an auto-trait, we make a rule <code>Implemented(!Foo: Trait) :- Implemented(T0: Trait)</code></li>
<li>otherwise, we generate rules from the bounds (which are useless if <code>Trait</code> doesn't appear among them)</li>
</ul>



<a name="185526624"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185526624" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185526624">(Jan 13 2020 at 19:16)</a>:</h4>
<p>this makes sense</p>



<a name="185526651"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185526651" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185526651">(Jan 13 2020 at 19:17)</a>:</h4>
<p>but not necessarily how it fits <code>Alias</code> (or how that's the "same" as an associated type)</p>



<a name="185526721"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185526721" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185526721">(Jan 13 2020 at 19:17)</a>:</h4>
<p>the three sorts of aliases I see are:</p>
<ul>
<li>
<p>type aliases (<code>type Foo = Bar</code>)<br>
    * these can always be "converted" from <code>Foo</code> to <code>Bar</code>, so there isn't really a need for a "placeholder" form</p>
</li>
<li>
<p>associated types (<code>&lt;T as Trait&gt;::Bar</code>)<br>
    * these can be converted into another type by finding an impl, if we can find one, so we might need a placeholder<br>
    * if we need a placeholder, then <code>trait Trait { type Bar: Bounds; }</code> the <code>Bounds</code> there are things we know about it</p>
</li>
<li>
<p>opaque impl trait types (<code>type Foo = impl Bar</code>)<br>
    * these can be converted from <code>Foo</code> to <code>Bar</code> only when in <code>Reveal</code> mode (during codegen), so we often need placeholders<br>
    * if we need a placeholder, then <code>impl Bar</code> plus auto-traits tells us what we know about it</p>
</li>
</ul>



<a name="185526832"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185526832" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185526832">(Jan 13 2020 at 19:18)</a>:</h4>
<p>I see the three as  behaving very similarly in that:</p>
<ul>
<li>when you try to equate them, you generate a goal for <code>AliasEq</code></li>
</ul>
<p>but the rules we use to satisfy this goal will depend on the kind of alias</p>



<a name="185526899"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185526899" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185526899">(Jan 13 2020 at 19:19)</a>:</h4>
<ul>
<li>when you have the placeholder type, at least, the bounds for it will come from the definition</li>
</ul>



<a name="185526918"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185526918" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185526918">(Jan 13 2020 at 19:19)</a>:</h4>
<p>that said, I remember that initially I was hoping to have only one alias type, and to know from context  if it was a placeholder or not (as rustc does)</p>



<a name="185526929"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185526929" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185526929">(Jan 13 2020 at 19:19)</a>:</h4>
<p>however, I convinced myself that was not viable, and we would need distinct placeholder types</p>



<a name="185527024"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527024" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527024">(Jan 13 2020 at 19:20)</a>:</h4>
<blockquote>
<p>but not necessarily how it fits <code>Alias</code> (or how that's the "same" as an associated type)</p>
</blockquote>
<p>I guess I would say that it doesn't necessarily <em>have</em> to be grouped together -- we could make more cases -- but the way we  <em>had</em> implemented it, where the bounds were part of the type, was not correct</p>



<a name="185527034"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527034" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527034">(Jan 13 2020 at 19:20)</a>:</h4>
<p>i.e., it's not like <code>dyn</code></p>



<a name="185527054"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527054" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527054">(Jan 13 2020 at 19:20)</a>:</h4>
<p>impl trait values have to have a def-id they are based off of</p>



<a name="185527065"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527065" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527065">(Jan 13 2020 at 19:20)</a>:</h4>
<p>so that we can generate the "auto trait" rules etc</p>



<a name="185527090"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527090" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527090">(Jan 13 2020 at 19:21)</a>:</h4>
<p>and because with <code>type Foo = impl Trait; type Bar = impl Trait;</code>, <code>Foo</code> and <code>Bar</code> are not the same type</p>



<a name="185527248"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527248" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527248">(Jan 13 2020 at 19:22)</a>:</h4>
<p>Not sure I understand; would that mean <code>AliasTy</code> would become an enum to hold that def-id?</p>



<a name="185527268"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527268" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527268">(Jan 13 2020 at 19:22)</a>:</h4>
<p>On a related note, one of the things I've been thinking about with the type transition is that we should try to move rustc and chalk closer together by refactoring them both. so e.g. chalk has far fewer categories, and I think we might experiment with merging some of rustc's categories to make them line up. This may be a pain because parts of rustc wish to distinguish between types that chalk wouldn't, and we can decide if it's worth it -- it will also have some memory usage implications, which we would want to measure. In other words, I doubt we can pick the perfect variants a priori</p>



<a name="185527320"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527320" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527320">(Jan 13 2020 at 19:22)</a>:</h4>
<blockquote>
<p>Not sure I understand; would that mean <code>AliasTy</code> would become an enum to hold that def-id?</p>
</blockquote>
<p>well, there are two choices</p>



<a name="185527326"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527326" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527326">(Jan 13 2020 at 19:23)</a>:</h4>
<p>first, it already has a def-id</p>



<a name="185527337"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527337" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527337">(Jan 13 2020 at 19:23)</a>:</h4>
<p>well, it has an AssociatedTyId or something</p>



<a name="185527370"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527370" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527370">(Jan 13 2020 at 19:23)</a>:</h4>
<p>which in rustc would just be a def-id anyway</p>



<a name="185527387"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527387" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527387">(Jan 13 2020 at 19:23)</a>:</h4>
<p>Ah right, AssocTypeId is just a DefId</p>



<a name="185527392"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527392" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527392">(Jan 13 2020 at 19:23)</a>:</h4>
<p>we can either say that, from <em>Chalk's</em> POV, there is just <code>AliasDefId</code></p>



<a name="185527412"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527412" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527412">(Jan 13 2020 at 19:23)</a>:</h4>
<p>Isn't the point of the <code>Ty</code> vs <code>TyData</code> split to (somewhat) allow differences in types</p>



<a name="185527435"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527435" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527435">(Jan 13 2020 at 19:23)</a>:</h4>
<p>and then have the chalk-solve have some callbacks to ask the <code>RustIrDatabase</code> what sort of alias it is</p>



<a name="185527439"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527439" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527439">(Jan 13 2020 at 19:23)</a>:</h4>
<p>or is that solely for interning</p>



<a name="185527502"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527502" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527502">(Jan 13 2020 at 19:24)</a>:</h4>
<blockquote>
<p>Isn't the point of the <code>Ty</code> vs <code>TyData</code> split to (somewhat) allow differences in types</p>
</blockquote>
<p>this was meant to be temporary, in my mind</p>



<a name="185527513"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527513" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527513">(Jan 13 2020 at 19:24)</a>:</h4>
<p>until we had converged on a single definition</p>



<a name="185527529"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527529" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527529">(Jan 13 2020 at 19:24)</a>:</h4>
<p>we still need the split mind you</p>



<a name="185527535"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527535" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527535">(Jan 13 2020 at 19:24)</a>:</h4>
<p>to permit interning vs not interning</p>



<a name="185527575"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527575" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527575">(Jan 13 2020 at 19:24)</a>:</h4>
<p>but I did want to converge eventually on rustc sharing the same enum as rust-analyzer</p>



<a name="185527621"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527621" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527621">(Jan 13 2020 at 19:25)</a>:</h4>
<p>well, ideally, rustc and rust-analyzer sharing bigger libraries (like chalk) that are based around this enum</p>



<a name="185527667"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527667" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527667">(Jan 13 2020 at 19:25)</a>:</h4>
<p>The enum would live in the type library, right?</p>



<a name="185527671"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527671" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527671">(Jan 13 2020 at 19:25)</a>:</h4>
<p>right</p>



<a name="185527682"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527682" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527682">(Jan 13 2020 at 19:25)</a>:</h4>
<p>the thing that I meant to be temporary, specifically:</p>



<a name="185527706"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527706" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527706">(Jan 13 2020 at 19:25)</a>:</h4>
<p>I imagined that in rustc integration, when you invoke <code>data()</code> we would generate lazilly a chalk enum representation</p>



<a name="185527756"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527756" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527756">(Jan 13 2020 at 19:26)</a>:</h4>
<p>(or maybe eagerly, if you have <code>-Zchalk</code>)</p>



<a name="185527771"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527771" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527771">(Jan 13 2020 at 19:26)</a>:</h4>
<p>but the rest of rustc goes on using its current types for now</p>



<a name="185527779"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527779" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527779">(Jan 13 2020 at 19:26)</a>:</h4>
<p>but I don't think we want that long term</p>



<a name="185527794"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527794" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527794">(Jan 13 2020 at 19:26)</a>:</h4>
<p>for one thing, it's a waste of memory</p>



<a name="185527819"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527819" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527819">(Jan 13 2020 at 19:26)</a>:</h4>
<p>but it seems convenient in order to get chalk-solve integrated</p>



<a name="185527842"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527842" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527842">(Jan 13 2020 at 19:27)</a>:</h4>
<p>(make sense?)</p>



<a name="185527867"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527867" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527867">(Jan 13 2020 at 19:27)</a>:</h4>
<p>I think that makes sense</p>



<a name="185527877"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527877" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527877">(Jan 13 2020 at 19:27)</a>:</h4>
<p>I'll have to think about it more</p>



<a name="185527880"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527880" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527880">(Jan 13 2020 at 19:27)</a>:</h4>
<p>Wouldn't changing rustc's types take a lot of refactoring?</p>



<a name="185527888"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527888" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527888">(Jan 13 2020 at 19:27)</a>:</h4>
<p>yes :)</p>



<a name="185527922"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527922" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527922">(Jan 13 2020 at 19:28)</a>:</h4>
<p>the alternative would be to move chalk to be the same as rustc</p>



<a name="185527962"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527962" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527962">(Jan 13 2020 at 19:28)</a>:</h4>
<p>I imagine we will do some of both</p>



<a name="185527999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185527999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185527999">(Jan 13 2020 at 19:28)</a>:</h4>
<p>Right, because translating between representations would be expensive in its own way</p>



<a name="185528001"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528001" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528001">(Jan 13 2020 at 19:28)</a>:</h4>
<p>I'm a bit annoyed at this aspect of rust's design really</p>



<a name="185528022"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528022" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528022">(Jan 13 2020 at 19:28)</a>:</h4>
<p>in particular, it seems annoying that how you group your enum variants has real impact on performance and memory usage</p>



<a name="185528048"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528048" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528048">(Jan 13 2020 at 19:29)</a>:</h4>
<p>rustc takes a "maximal" view and makes a ton of variants</p>



<a name="185528059"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528059" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528059">(Jan 13 2020 at 19:29)</a>:</h4>
<p>but then you commonly have match statements grouping lots of things together</p>



<a name="185528075"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528075" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528075">(Jan 13 2020 at 19:29)</a>:</h4>
<p>chalk uses nested variants, which is nice, but then if you need to do recursive matching</p>



<a name="185528082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528082">(Jan 13 2020 at 19:29)</a>:</h4>
<p>that's going to be a bit less optimal code</p>



<a name="185528086"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528086" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528086">(Jan 13 2020 at 19:29)</a>:</h4>
<p>and we're going to use more memory in the memory layout</p>



<a name="185528093"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528093" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528093">(Jan 13 2020 at 19:29)</a>:</h4>
<p>there's some kind of missing feature here but oh well :)</p>



<a name="185528175"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528175" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528175">(Jan 13 2020 at 19:30)</a>:</h4>
<p>(we've sort of known this for a while, but it's hard to fix)</p>



<a name="185528189"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528189" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528189">(Jan 13 2020 at 19:30)</a>:</h4>
<p>anyway to circle back to alias's for a second --</p>



<a name="185528197"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528197" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528197">(Jan 13 2020 at 19:30)</a>:</h4>
<p>if we just had <code>AliasDefId</code></p>



<a name="185528211"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528211" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528211">(Jan 13 2020 at 19:30)</a>:</h4>
<p>then presumably we could have a method like <code>alias_kind</code> in <code>RustIrDatabase</code> that tells chalk-solve what sort of alias it is</p>



<a name="185528215"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528215" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528215">(Jan 13 2020 at 19:31)</a>:</h4>
<p>and hence which kind of <code>AliasEq</code> and other rules to generate for it</p>



<a name="185528247"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528247" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528247">(Jan 13 2020 at 19:31)</a>:</h4>
<p>though this again is a very ... "chalk-centric" POV</p>



<a name="185528364"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528364" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528364">(Jan 13 2020 at 19:32)</a>:</h4>
<p>i.e., maybe parts of rustc might want to distinguish them and it would be annoying that they had only one variant and had to use helper methods to figure out what sort of alias they have</p>



<a name="185528407"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528407" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528407">(Jan 13 2020 at 19:32)</a>:</h4>
<p>Won't that be the case in Chalk as well?</p>



<a name="185528418"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528418" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528418">(Jan 13 2020 at 19:33)</a>:</h4>
<p>yeah, in chalk-solve, just not in unify etc</p>



<a name="185528436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528436">(Jan 13 2020 at 19:33)</a>:</h4>
<p>hmm</p>



<a name="185528440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528440">(Jan 13 2020 at 19:33)</a>:</h4>
<p>so maybe we want 3 variants ...</p>



<a name="185528467"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528467" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528467">(Jan 13 2020 at 19:33)</a>:</h4>
<p>... that unify treats the same ...</p>



<a name="185528556"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528556" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528556">(Jan 13 2020 at 19:34)</a>:</h4>
<p><span aria-label="shrug" class="emoji emoji-1f937" role="img" title="shrug">:shrug:</span>‍♂️</p>



<a name="185528591"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528591" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528591">(Jan 13 2020 at 19:34)</a>:</h4>
<p><span class="user-mention" data-user-id="125131">@detrumi</span> did you want to try to implement this?</p>



<a name="185528645"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528645" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528645">(Jan 13 2020 at 19:35)</a>:</h4>
<blockquote>
<p>Wouldn't changing rustc's types take a lot of refactoring?</p>
</blockquote>
<p>I guess this might argue for matching rustc's design</p>



<a name="185528655"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528655" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528655">(Jan 13 2020 at 19:35)</a>:</h4>
<p>I'd like to try, at least <span aria-label="slight smile" class="emoji emoji-1f642" role="img" title="slight smile">:slight_smile:</span></p>



<a name="185528659"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528659" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528659">(Jan 13 2020 at 19:35)</a>:</h4>
<p>after all, refactoring chalk is easier thus far ;)</p>



<a name="185528705"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528705" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528705">(Jan 13 2020 at 19:35)</a>:</h4>
<p>though I do appreciate a "smaller" type enum that tries to highlight the essential behavior of each type</p>



<a name="185528742"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528742" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528742">(Jan 13 2020 at 19:35)</a>:</h4>
<p>but I also think that trying to group these 3 sorts of "aliases" together only <em>kind of</em> works</p>



<a name="185528803"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528803" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528803">(Jan 13 2020 at 19:36)</a>:</h4>
<p>If possible (and elegant), I would also prefer a smaller type enum</p>



<a name="185528835"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185528835" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185528835">(Jan 13 2020 at 19:36)</a>:</h4>
<p>I see them as kind of points along a spectrum, but they are distinct points (and you have to squint a bit, thanks to stuff like auto trait leakage)</p>



<a name="185529023"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529023" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529023">(Jan 13 2020 at 19:38)</a>:</h4>
<p>Ok if <span class="user-mention" data-user-id="125131">@detrumi</span> wants to try to implement this, then I'll do other stuff :)</p>



<a name="185529055"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529055" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529055">(Jan 13 2020 at 19:38)</a>:</h4>
<p>But I think it would be better to "fix" <code>impl Trait</code> sooner rather than later</p>



<a name="185529093"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529093" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529093">(Jan 13 2020 at 19:38)</a>:</h4>
<p>since rust-analyzer will probably want the fixes for other issues</p>



<a name="185529102"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529102" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529102">(Jan 13 2020 at 19:38)</a>:</h4>
<p>yes, I think it's good to be presenting a coherent view of the type enum</p>



<a name="185529114"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529114" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529114">(Jan 13 2020 at 19:39)</a>:</h4>
<p>I'll need a bit more detail to get started, but it seems doable</p>



<a name="185529147"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529147" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529147">(Jan 13 2020 at 19:39)</a>:</h4>
<blockquote>
<p>since rust-analyzer will probably want the fixes for other issues</p>
</blockquote>
<p>see <a href="#narrow/stream/144729-wg-traits/topic/ambiguous.20answer.20replacement/near/185302669" title="#narrow/stream/144729-wg-traits/topic/ambiguous.20answer.20replacement/near/185302669">https://rust-lang.zulipchat.com/#narrow/stream/144729-wg-traits/topic/ambiguous.20answer.20replacement/near/185302669</a></p>



<a name="185529195"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529195" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529195">(Jan 13 2020 at 19:39)</a>:</h4>
<p>Anything else for <code>impl Trait</code> or <code>Alias</code> right now?</p>



<a name="185529269"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529269" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529269">(Jan 13 2020 at 19:40)</a>:</h4>
<p>I think that covers this</p>



<a name="185529305"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529305" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529305">(Jan 13 2020 at 19:40)</a>:</h4>
<blockquote>
<p>since rust-analyzer will probably want the fixes for other issues</p>
</blockquote>
<p>yeah, I see, sorry <span class="user-mention" data-user-id="129457">@Florian Diebold</span> ...</p>



<a name="185529345"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529345" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529345">(Jan 13 2020 at 19:41)</a>:</h4>
<p>Speaking of rust-analyzer bugs</p>



<a name="185529351"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529351" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529351">(Jan 13 2020 at 19:41)</a>:</h4>
<p>I've looked at two</p>



<a name="185529362"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529362" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529362">(Jan 13 2020 at 19:41)</a>:</h4>
<p>yep</p>



<a name="185529367"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529367" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529367">(Jan 13 2020 at 19:41)</a>:</h4>
<p>nice segway <span aria-label="smirk" class="emoji emoji-1f60f" role="img" title="smirk">:smirk:</span></p>



<a name="185529383"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529383" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529383">(Jan 13 2020 at 19:41)</a>:</h4>
<p>this one: <a href="https://github.com/rust-lang/chalk/issues/302" target="_blank" title="https://github.com/rust-lang/chalk/issues/302">https://github.com/rust-lang/chalk/issues/302</a></p>



<a name="185529412"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529412" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529412">(Jan 13 2020 at 19:41)</a>:</h4>
<p>So, we kind of saw this coming</p>



<a name="185529461"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529461" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529461">(Jan 13 2020 at 19:42)</a>:</h4>
<p>And this one: <a href="https://github.com/rust-lang/chalk/issues/301" target="_blank" title="https://github.com/rust-lang/chalk/issues/301">https://github.com/rust-lang/chalk/issues/301</a></p>



<a name="185529489"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529489" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529489">(Jan 13 2020 at 19:42)</a>:</h4>
<p>(and then I also found a potential bug: <a href="https://github.com/rust-lang/chalk/issues/318" target="_blank" title="https://github.com/rust-lang/chalk/issues/318">https://github.com/rust-lang/chalk/issues/318</a>)</p>



<a name="185529501"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529501" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529501">(Jan 13 2020 at 19:42)</a>:</h4>
<p>all of these directly come from truncation</p>



<a name="185529554"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529554" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529554">(Jan 13 2020 at 19:43)</a>:</h4>
<p>those the first (302) actually is a slightly larger issue around ambiguity (but in this case is from truncation)</p>



<a name="185529576"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529576" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529576">(Jan 13 2020 at 19:43)</a>:</h4>
<p>but <span class="user-mention" data-user-id="116009">@nikomatsakis</span> was suggesting that maybe we don't do truncation at all</p>



<a name="185529659"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529659" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529659">(Jan 13 2020 at 19:44)</a>:</h4>
<p>That would be fairly easy to test, I think</p>



<a name="185529672"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529672" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529672">(Jan 13 2020 at 19:44)</a>:</h4>
<p>to be specific, I think we would turn truncation into something like a boolean test</p>



<a name="185529688"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529688" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529688">(Jan 13 2020 at 19:44)</a>:</h4>
<p>if it exceeds the threshold, we would flounder</p>



<a name="185529739"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529739" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529739">(Jan 13 2020 at 19:45)</a>:</h4>
<p>rustc has a similar rule where it just plain forbids the creation of types larger than a certain size</p>



<a name="185529765"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529765" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529765">(Jan 13 2020 at 19:45)</a>:</h4>
<p>there are really only two places we truncate right now: in <code>get_or_create_table_for_subgoal</code></p>



<a name="185529778"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529778" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529778">(Jan 13 2020 at 19:45)</a>:</h4>
<p>and in: <code>truncate_returned</code></p>



<a name="185529798"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529798" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529798">(Jan 13 2020 at 19:45)</a>:</h4>
<p>yeah</p>



<a name="185529803"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529803" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529803">(Jan 13 2020 at 19:45)</a>:</h4>
<p>for the first, it's pretty easy: we just <code>Flounder</code> the table</p>



<a name="185529820"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529820" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529820">(Jan 13 2020 at 19:46)</a>:</h4>
<p>for the second, we could just...not?</p>



<a name="185529880"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529880" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529880">(Jan 13 2020 at 19:46)</a>:</h4>
<p>/me ponders</p>



<a name="185529898"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529898" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529898">(Jan 13 2020 at 19:46)</a>:</h4>
<p>what rustc actually does is to abort I think</p>



<a name="185529909"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529909" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529909">(Jan 13 2020 at 19:46)</a>:</h4>
<p>like, hard abort compilation</p>



<a name="185529919"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529919" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529919">(Jan 13 2020 at 19:46)</a>:</h4>
<p>I'd rather not go that far if we can avoid it</p>



<a name="185529927"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529927" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529927">(Jan 13 2020 at 19:46)</a>:</h4>
<p>I don't think we want that</p>



<a name="185529942"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529942" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529942">(Jan 13 2020 at 19:47)</a>:</h4>
<p>(but we may wish to propagate back some kind of error)</p>



<a name="185529971"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529971" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529971">(Jan 13 2020 at 19:47)</a>:</h4>
<p>in any case the reason we apply that in both places is to prevent infinite loops</p>



<a name="185529972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529972">(Jan 13 2020 at 19:47)</a>:</h4>
<p>if anything, we could do as we do with <code>NegativeCycle</code> and propogate out immediately</p>



<a name="185529987"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529987" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529987">(Jan 13 2020 at 19:47)</a>:</h4>
<p>right</p>



<a name="185529992"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185529992" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185529992">(Jan 13 2020 at 19:47)</a>:</h4>
<p>and that may be reasonable</p>



<a name="185530017"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530017" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530017">(Jan 13 2020 at 19:47)</a>:</h4>
<blockquote>
<p>in any case the reason we apply that in both places is to prevent infinite loops</p>
</blockquote>
<p>I'm trying to think about the case of "if you just apply it when creating new tables"... whta can go wrong...</p>



<a name="185530070"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530070" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530070">(Jan 13 2020 at 19:48)</a>:</h4>
<p>I suspect there can be some kind of cycle but not entirely sure how to build it</p>



<a name="185530074"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530074" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530074">(Jan 13 2020 at 19:48)</a>:</h4>
<p>This also hits on the idea of performance too</p>



<a name="185530076"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530076" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530076">(Jan 13 2020 at 19:48)</a>:</h4>
<p>regardless, I think the other question is:</p>



<a name="185530079"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530079" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530079">(Jan 13 2020 at 19:48)</a>:</h4>
<p>when you lift the limit in rust-analyzer</p>



<a name="185530087"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530087" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530087">(Jan 13 2020 at 19:48)</a>:</h4>
<p>I believe it starts to have <em>other</em> problems</p>



<a name="185530097"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530097" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530097">(Jan 13 2020 at 19:48)</a>:</h4>
<p>yes, let me see if I can find that</p>



<a name="185530103"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530103" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530103">(Jan 13 2020 at 19:48)</a>:</h4>
<p>and it seems like we need to address <em>those</em>, rigit?</p>



<a name="185530106"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530106" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530106">(Jan 13 2020 at 19:48)</a>:</h4>
<p>we talked about that shortly</p>



<a name="185530144"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530144" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530144">(Jan 13 2020 at 19:48)</a>:</h4>
<p><a href="#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Changing.20CHALK_SOLVER_MAX_SIZE/near/184864153" title="#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Changing.20CHALK_SOLVER_MAX_SIZE/near/184864153">https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Changing.20CHALK_SOLVER_MAX_SIZE/near/184864153</a></p>



<a name="185530188"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530188" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530188">(Jan 13 2020 at 19:49)</a>:</h4>
<p>So, different/wrong answers</p>



<a name="185530203"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530203" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530203">(Jan 13 2020 at 19:49)</a>:</h4>
<p>no, I think just hanging</p>



<a name="185530206"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530206" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530206">(Jan 13 2020 at 19:49)</a>:</h4>
<p>I think as long as we have a way to prevent Chalk from hanging, we should be fine</p>



<a name="185530353"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530353" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530353">(Jan 13 2020 at 19:51)</a>:</h4>
<p>But this also opens a bit of a design problem:</p>



<a name="185530378"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530378" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530378">(Jan 13 2020 at 19:51)</a>:</h4>
<p>If we expect that at <em>some point</em>, there will be a large program</p>



<a name="185530386"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530386" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530386">(Jan 13 2020 at 19:51)</a>:</h4>
<p>(even if we are super fast)</p>



<a name="185530399"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530399" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530399">(Jan 13 2020 at 19:51)</a>:</h4>
<p>we will take a long time</p>



<a name="185530418"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530418" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530418">(Jan 13 2020 at 19:51)</a>:</h4>
<p>and we want the caller to say "that's enough, I don't care"</p>



<a name="185530421"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530421" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530421">(Jan 13 2020 at 19:52)</a>:</h4>
<p>but, what do we do:</p>



<a name="185530468"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530468" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530468">(Jan 13 2020 at 19:52)</a>:</h4>
<p>do we just say "I got nothing"</p>



<a name="185530479"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530479" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530479">(Jan 13 2020 at 19:52)</a>:</h4>
<p>or do we try to give some kind of hint</p>



<a name="185530499"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530499" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530499">(Jan 13 2020 at 19:52)</a>:</h4>
<p>yeah this is the subject of your PR, right?</p>



<a name="185530528"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530528" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530528">(Jan 13 2020 at 19:52)</a>:</h4>
<p>Slightly</p>



<a name="185530575"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530575" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530575">(Jan 13 2020 at 19:53)</a>:</h4>
<p>so with my PR, I basically allow the solving to be cancelled at any point</p>



<a name="185530596"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530596" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530596">(Jan 13 2020 at 19:53)</a>:</h4>
<p>and it'll just give a suggestion with any answers that have <em>already come through</em></p>



<a name="185530619"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530619" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530619">(Jan 13 2020 at 19:53)</a>:</h4>
<p>(even though the full aggregated answer isn't available)</p>



<a name="185530646"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530646" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530646">(Jan 13 2020 at 19:54)</a>:</h4>
<p>I talk a bit about this in the PR desc.</p>



<a name="185530724"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530724" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530724">(Jan 13 2020 at 19:54)</a>:</h4>
<p>but I could see us in the future allowing cancellation based on the <em>current aggregated answer</em></p>



<a name="185530756"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530756" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530756">(Jan 13 2020 at 19:54)</a>:</h4>
<p>or to also extend the suggested answer by <em>potential future answers</em></p>



<a name="185530784"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530784" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530784">(Jan 13 2020 at 19:55)</a>:</h4>
<p>ok so</p>



<a name="185530802"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530802" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530802">(Jan 13 2020 at 19:55)</a>:</h4>
<p>in this version you are threading down a "should continue" closure</p>



<a name="185530829"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530829" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530829">(Jan 13 2020 at 19:55)</a>:</h4>
<p>yeah</p>



<a name="185530852"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530852" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530852">(Jan 13 2020 at 19:55)</a>:</h4>
<p>which gets invoked periodically</p>



<a name="185530869"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530869" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530869">(Jan 13 2020 at 19:55)</a>:</h4>
<p>and which forces a <code>QuantumExceeded</code> result if it is true?</p>



<a name="185530932"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530932" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530932">(Jan 13 2020 at 19:56)</a>:</h4>
<p>it gets invoked anytime Chalk returns a <code>QuantumExceeded</code></p>



<a name="185530935"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530935" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530935">(Jan 13 2020 at 19:56)</a>:</h4>
<p>skimming the commits I somehow missed where <code>should_continue()</code> gets called</p>



<a name="185530937"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530937" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530937">(Jan 13 2020 at 19:56)</a>:</h4>
<p>I'd imagine that RA would want a partial answer, while rustc would only want the exact answer?</p>



<a name="185530959"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530959" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530959">(Jan 13 2020 at 19:56)</a>:</h4>
<blockquote>
<p>it gets invoked anytime Chalk returns a <code>QuantumExceeded</code></p>
</blockquote>
<p>oh, I see</p>



<a name="185530961"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530961" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530961">(Jan 13 2020 at 19:56)</a>:</h4>
<p>so, we're still at the mercy of the engine if no <code>QuantumExceeded</code> ever gets called</p>



<a name="185530967"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530967" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530967">(Jan 13 2020 at 19:56)</a>:</h4>
<p>interesting</p>



<a name="185530968"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530968" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530968">(Jan 13 2020 at 19:56)</a>:</h4>
<p>ok</p>



<a name="185530978"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530978" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530978">(Jan 13 2020 at 19:56)</a>:</h4>
<p>not quite what I imagined at first</p>



<a name="185530986"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530986" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530986">(Jan 13 2020 at 19:56)</a>:</h4>
<p>this is making me think btw</p>



<a name="185530988"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185530988" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185530988">(Jan 13 2020 at 19:56)</a>:</h4>
<p>but if <code>QuantumExceeded</code> never gets called, then we are on the happy path</p>



<a name="185531003"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531003" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531003">(Jan 13 2020 at 19:57)</a>:</h4>
<p>that it'd be pretty nice to be documenting this high-level flow in the chalk book</p>



<a name="185531032"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531032" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531032">(Jan 13 2020 at 19:57)</a>:</h4>
<blockquote>
<p>that it'd be pretty nice to be documenting this high-level flow in the chalk book</p>
</blockquote>
<p>yes, I'm going to write <code>chalk-engine</code> documentation in the book at some point</p>



<a name="185531065"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531065" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531065">(Jan 13 2020 at 19:57)</a>:</h4>
<p>it seems like it might be useful also</p>



<a name="185531118"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531118" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531118">(Jan 13 2020 at 19:58)</a>:</h4>
<p>to be able to thread down said closure, perhaps as part of the <code>Context</code> or whatever</p>



<a name="185531131"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531131" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531131">(Jan 13 2020 at 19:58)</a>:</h4>
<p>(but that's fine)</p>



<a name="185531146"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531146" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531146">(Jan 13 2020 at 19:58)</a>:</h4>
<p>we can change exactly when/where/how it gets invoked</p>



<a name="185531159"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531159" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531159">(Jan 13 2020 at 19:58)</a>:</h4>
<p>but the main thing is, if it <em>is</em> invoked, you get back kind of "what we got so far"</p>



<a name="185531188"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531188" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531188">(Jan 13 2020 at 19:59)</a>:</h4>
<p>another semi-related issue is: <a href="https://github.com/rust-lang/chalk/issues/260" target="_blank" title="https://github.com/rust-lang/chalk/issues/260">https://github.com/rust-lang/chalk/issues/260</a></p>



<a name="185531225"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531225" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531225">(Jan 13 2020 at 19:59)</a>:</h4>
<p>which relates to the idea of "cancellation"</p>



<a name="185531307"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531307" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531307">(Jan 13 2020 at 20:00)</a>:</h4>
<blockquote>
<p>but the main thing is, if it <em>is</em> invoked, you get back kind of "what we got so far"</p>
</blockquote>
<p>which I'm just doing a <code>Guidance(Suggested(current_subst))</code></p>



<a name="185531334"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531334" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531334">(Jan 13 2020 at 20:00)</a>:</h4>
<p><code>should_continue</code> is actually just cancellation from within instead of from outside</p>



<a name="185531355"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531355" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531355">(Jan 13 2020 at 20:00)</a>:</h4>
<blockquote>
<p><code>should_continue</code> is actually just cancellation from within instead of from outside</p>
</blockquote>
<p>what do you mean?</p>



<a name="185531367"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531367" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531367">(Jan 13 2020 at 20:00)</a>:</h4>
<p>But, it's 3:00, so I'll give a quick summary of the meeting:</p>



<a name="185531435"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531435" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531435">(Jan 13 2020 at 20:01)</a>:</h4>
<p>cancellation and <code>should_continue</code> seem very similar, the only difference is who decides to stop the search (and for what reason)</p>



<a name="185531636"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531636" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531636">(Jan 13 2020 at 20:03)</a>:</h4>
<blockquote>
<blockquote>
<p>but the main thing is, if it <em>is</em> invoked, you get back kind of "what we got so far"</p>
</blockquote>
<p>which I'm just doing a <code>Guidance(Suggested(current_subst))</code></p>
</blockquote>
<p>interesting, yes. it seems like we should report that it's partial <em>somehow</em></p>



<a name="185531642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531642">(Jan 13 2020 at 20:03)</a>:</h4>
<p>but I'm <span aria-label="+1" class="emoji emoji-1f44d" role="img" title="+1">:+1:</span> on the PR overall</p>



<a name="185531647"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531647" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531647">(Jan 13 2020 at 20:03)</a>:</h4>
<blockquote>
<p>But, it's 3:00, so I'll give a quick summary of the meeting:</p>
</blockquote>
<p><span aria-label="heart" class="emoji emoji-2764" role="img" title="heart">:heart:</span></p>



<a name="185531717"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531717" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531717">(Jan 13 2020 at 20:04)</a>:</h4>
<ul>
<li><code>Alias</code> might make sense as one enum variant, or maybe three</li>
<li>We want to bring rustc and Chalk's types closer together/merge</li>
<li><span class="user-mention" data-user-id="125131">@detrumi</span> is going to try to reimplement <code>impl Trait</code></li>
<li>We should try to just remove truncation and instead just <code>Flounder</code> (Jack will try)</li>
<li>performance/cancellation is the next big thing if we remove truncation &amp; related errors</li>
</ul>



<a name="185531736"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531736" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531736">(Jan 13 2020 at 20:04)</a>:</h4>
<p>Did I miss anything?</p>



<a name="185531751"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531751" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531751">(Jan 13 2020 at 20:04)</a>:</h4>
<blockquote>
<ul>
<li><code>Alias</code> might make sense as one enum variant, or maybe three</li>
</ul>
</blockquote>



<a name="185531758"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531758" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531758">(Jan 13 2020 at 20:04)</a>:</h4>
<p>that's very much an oversimplification</p>



<a name="185531831"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531831" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531831">(Jan 13 2020 at 20:05)</a>:</h4>
<p>Also, for any who didn't see: I'm working on writing down some chalk goals: <a href="https://hackmd.io/VeMmXIYBRu2KdYbJDIpcFA?both" target="_blank" title="https://hackmd.io/VeMmXIYBRu2KdYbJDIpcFA?both">https://hackmd.io/VeMmXIYBRu2KdYbJDIpcFA?both</a></p>



<a name="185531846"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531846" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531846">(Jan 13 2020 at 20:05)</a>:</h4>
<p>feel free to add anything you feel is important</p>



<a name="185531915"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185531915" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185531915">(Jan 13 2020 at 20:06)</a>:</h4>
<p>After I list them, I'll try to prioritize and add them to a github project (either on rust-lang/chalk or rust-lang/wg-traits)</p>



<a name="185532266"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185532266" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185532266">(Jan 13 2020 at 20:09)</a>:</h4>
<p>Maybe we should have one board for chalk changes, and one for rustc-chalk integration. Though it's not always clear what goes where then <span aria-label="slight smile" class="emoji emoji-1f642" role="img" title="slight smile">:slight_smile:</span></p>



<a name="185532375"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.01.13/near/185532375" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E01.2E13.html#185532375">(Jan 13 2020 at 20:10)</a>:</h4>
<p>I think that's the plan</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>